<?xml version="1.0" encoding="UTF-8"?>
<doc>

<title>宏(Macro)的使用</title>

<para>
<ptitle>所谓宏(Macro)就是</ptitle>
　宏就是，为了「将复数的指令，文字等，用一个指令表示」的缩写简化功能。<r/>
<r/>
　将KAG既存的指令，文字组合起来，自由地定义新指令的方法。<r/>
　KAG 剧本编写中，可能经常会出现有一些指令段，需要在很多地方重复写好几次的情况。假如使用宏的话，就可以大幅度减少这种重复造成的麻烦。<r/>
　请随心所欲地将经常会写在一起的指令们变成宏吧。<tt>(^^)</tt><r/>
</para>

<para>
<ptitle>基本的使用方法</ptitle>
　要使用宏，首先要进行宏的「定義」。只要定义一次，之后就可以反复地使用这个宏了。所以，宏的定义，最好是写在first.ks开始的地方。<r/>
<r/>
　定义宏的办法是，使用<kw>macro</kw> 指令和 <kw>endmacro</kw> 指令で，将想要设定成宏的段落括起来。macro 指令的属性 name ，就定义了这个宏的名字。（也就是新指令的指令名）<r/>
<r/>
<bq>
[wait time=200]<r/>
*start|开始<r/>
[cm]<r/>
; -- 宏的定义 --<r/>
<b>[macro name=newtag]</b>[font color=0xff0000]这是显示一段文字的宏[resetfont]<b>[endmacro]</b><r/>
</bq>
<r/>
想要使用的话，就和使用一般的指令一样，把宏的名字写上就可以了。<r/>
<bq>
; -- 宏的使用 --<r/>
[newtag]<r/>
</bq>
<r/>
　像上面这样写上 <tt>[newtag]</tt> ， <tt>[newtag]</tt> 这个指令执行时， 等同于执行了 <tt>[font color=0xff0000]这是显示一段文字的宏[resetfont]</tt> ，所以将会显示红色文字：「这是显示一段文字的宏」。<r/>
<r/>
　宏的定义可以写成多行。（如下例）<r/>
<r/>
<bq>
[wait time=200]<r/>
*start|开始<r/>
[cm]<r/>
; -- 宏的定义 --<r/>
[macro name=newtag]<r/>
[font color=0xff0000]<r/>
这是显示一段文字的宏<r/>
[resetfont]<r/>
[endmacro]<r/>
</bq>
<bq>
; -- 宏的使用 --<r/>
[newtag]<r/>
</bq>
</para>

<para>
<ptitle>宏的属性</ptitle>
　定义宏的同时，也自己定义了属性的话，就可以使用属性改变执行时的效果了。<r/>
　在宏定义中，将属性値以 <kw>%</kw> 开头，百分号后面的文字就成为一个自定义的属性名。<r/>
　以下の例を見てください。<r/>
<bq>
[wait time=200]<r/>
*start|开始<r/>
[cm]<r/>
; -- 宏的定义 --<r/>
[macro name=newtag]<r/>
[font color=<b>%iro</b>]<r/>
这是显示一段文字的宏<r/>
[resetfont]<r/>
[endmacro]<r/>
</bq>
<bq>
; -- 宏的使用 --<r/>
[newtag <b>iro=0x00ff00</b>]<r/>
</bq>
<r/>
　在本例中，就定义了 iro 这个属性，功能等价于 font 的 color 属性。<r/>
　执行时，如上例，显示了绿色字的：「这是显示一段文字的宏」。<r/>
<r/>
<r/>
　此外，宏里的指令，假如后面加上 <kw>*</kw> 的话，这个指令所带的全部属性，都将成为宏的自定义属性。例如，将 trans 指令和 wt 指令缩写成一个宏，<r/>
<r/>
<bq>
[macro name=transwait][trans <b>*</b>][wt][endmacro]<r/>
</bq>
<r/>
　就可以写成这样。在这个例子中，假如使用 transwait 这个宏，就可以通过 transwait 直接指定 trans 指令所拥有的全部属性，对于扩展既有的 KAG 指令是相当方便的功能。<r/>
<r/>
　宏可以进行嵌套，但是请注意不要在宏的定义里调用自身哦。(^^)<r/>
<r/>
　如果想要省略属性值，可以为宏指定默认值。% 指定的属性名之后，写上 <kw>|</kw> ( 竖线 ) ，之后写上当省略时，会默认指定的值。请看下面的例子。<r/>
<r/>
<bq>
[wait time=200]<r/>
*start|开始<r/>
[cm]<r/>
; -- 宏的定义 --<r/>
[macro name=newtag]<r/>
[font color=%color<b>|0xff0000</b>]<r/>
这是显示一段文字的宏<r/>
[resetfont]<r/>
[endmacro]<r/>
</bq>
<bq>
; -- 宏的使用 --<r/>
[newtag color=0x00ff00]<r/>
[newtag]<r/>
</bq>
　使用第一个 [newtag] 时，指定了 color 属性的值，因此文字颜色表现为 0x00ff00 ，緑色。<r/>
　使用第二个 [newtag] 时，没有指定 color  属性，因此使用了预设的默认值 "0xff0000" ，文字颜色为红色。<r/>
<r/>
<note>
　属性名的指定，请使用半角英文。使用全角、汉字等是不行的。（译注：宏属性必须半角英文，但宏的名字就比较自由，甚至可以使用中文）
</note>
</para>
</doc>